The present invention relates generally to computer processing, and more particularly to techniques for providing dynamic multi-lingual support for software applications.
Analytics applications are software tools designed to simplify data analysis for specific business or functional areas, such as sales and marketing management, customer relationship management (CRM), financial management, inventory management, category management, and so on. As the business environment becomes increasingly more complex, a given business or functional area may be inundated with data from a myriad of different sources and of different types. An analytics application then, based on some defined underlying analytics or analysis tools, collects and transforms the data into more meaningful and understandable information. This information may then be provided in a report, which may include one or more graphs, tables, spreadsheets, text, and so on, or any combination thereof. The information in the report may be used to form business decisions and/or adjust business processes.
With the globalization of many businesses and an ever expanding marketplace, analytics applications that can support multiple languages are becoming increasingly important. In particular, an analytics application may need to generate reports in specific languages determined by the background and/or preferences of the end-users.
In one conventional implementation, multiple languages are supported by providing different versions of a software application. A specific software version may then be selected, based on the desired language to be supported, and installed and executed on a computer system. This implementation suffers from three major disadvantages. First, multiple versions of the software application need to be provided. Building analytical applications in different languages becomes a complicated task as the metadata and the reports have to be built for each language. Second, there is no ability to change language after installation, without having to install another version of the application. Third, there is no ability to concurrently support multiple end-users with different language requirements based on a single installation and running instance of the software application (i.e., a single server instance).
As can be seen, techniques that can provide multi-lingual support for software applications (such as analytics) based on a single server instance are highly desirable.